// 昵称正则验证
export async function nicknameRule(rule, value, callback) {
    let reg = /^[A-Za-z0-9\u4E00-\u9FA5\u3040-\u309F\u30A0-\u30FF\u31F0-\u31FF\uAC00-\uD7A3]{1,12}$/;
    if (!value) {
        callback(new Error('用户名不能为空！'))
    } else if (!reg.test(value)) {
        callback(new Error('用户名格式不正确!'))
    } else {
        callback()
    }
}

// 用户名正则验证
export async function usernameRule(rule, value, callback) {
    let reg = /^[A-Za-z0-9\u4E00-\u9FA5]{1,6}$/;
    if (!value) {
        callback(new Error('用户名不能为空！'))
    } else if (!reg.test(value)) {
        callback(new Error('用户名格式不正确!'))
    } else {
        callback()
    }
}

// 密码正则验证
export async function passwordRule(rule, value, callback) {
    let reg = /^\S*(?=\S{12,18})(?=\S*[A-Z])(?=\S*[a-z])\S*$/;
    if (!value) {
        callback(new Error('密码不能为空！'))
    } else if (!reg.test(value)) {
        callback(new Error('密码格式不正确!'))
    } else {
        callback()
    }
}

// 邮箱正则验证
export function emailRule(rule, value, callback) {
    let reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
    if (!value) {
        callback(new Error('邮箱不能为空！'))
    } else if (!reg.test(value)) {
        callback(new Error('邮箱格式不正确！'))
    } else {
        callback();
    }
}

// 验证码正则验证
export function codeRule(rule, value, callback) {
    let reg = /^[a-zA-Z0-9]{4}$/; // 验证码为4位数
    if (!value) {
        callback(new Error('验证码不能为空！'))
    } else if (!reg.test(value)) {
        callback(new Error('验证码有误!'))
    } else {
        callback();
    }
}

// 路由路径验证
export async function routes_pathRule(rule, value, callback) {
    let reg = /^[a-z/]{2,20}$/;
    if (!value) {
        callback(new Error('路由路径不能为空！'))
    } else if (!reg.test(value)) {
        callback(new Error('路由路径格式不正确!'))
    } else {
        callback()
    }
}

// 路由名验证
export async function routes_nameRule(rule, value, callback) {
    let reg = /^[a-zA-Z]{2,20}$/;
    if (!value) {
        callback(new Error('路由名不能为空！'))
    } else if (!reg.test(value)) {
        callback(new Error('路由名格式不正确!'))
    } else {
        callback()
    }
}

// 路由标题验证
export async function routes_titleRule(rule, value, callback) {
    let reg = /^[\u4e00-\u9fa5a-zA-Z]{2,20}$/;
    if (!value) {
        callback(new Error('路由标题不能为空！'))
    } else if (!reg.test(value)) {
        callback(new Error('路由标题格式不正确!'))
    } else {
        callback()
    }
}